#include <stdio.h>

// 作用域、链接属性、存储类型
// c和指针中说：凡是在任何代码块之外声明的变量总是存储于静态内存中，这类变量称为静态变量。
// 360百科中说：静态变量的类型关键字是static。 静态变量属于静态存储方式，但是属于静态存储方式的量不一定就是静态变量， 
// 例如外部变量虽属于静态存储方式，但不一定是静态变量，必须由static加以定义后才能成为静态外部变量，或称静态全局变量
int a = 5; // 文件作用域，缺省状态下为external链接属性。它是不是静态变量？

extern int b; // 同上面a，external可省略，但不建议这样做
static int c; // 把他的链接属性改成了internal，只能在当前文件中可以访问。

// 以上变量a b c 的存储累心改为静态，不是存储在堆栈上。

int d(int e) // 参数e不具有链接属性，所以只能从函数内部通过名字访问他。
{
    int f = 15;
    register int b;   // 将隐藏同名的静态变量
    static int g = 20;
    extern int a;
    {
        int e;
        int a; // 将隐藏同名的静态变量
        extern int h;
    }
    {
        int x;
        int e;
    }
}

static int i()
{

}